﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;

using Padelcenter.Common;
using Padelcenter.BusinessLogic.Get;

namespace Padelcenter.BusinessLogic
{
    public class TipoProductoBS
    {
        #region " Tipo Producto "
        public List<TipoProducto> TipoProductoSelect(TipoProducto tipoProducto)
        {
            if (tipoProducto == null)
            {
                tipoProducto = new TipoProducto();
            }

            GetTipoProducto oGetTipoProducto = new GetTipoProducto();
            oGetTipoProducto.TipoProducto = tipoProducto;

            return oGetTipoProducto.TipoProductoList();
        }

        public int TipoProductoInsert(int idTipoProductoPadre, string descripcion, bool activo, int orden)
        {
            TipoProducto oTipoProducto = new TipoProducto();

            TipoProducto oTipoProductoPadre = new TipoProducto();
            oTipoProductoPadre.IdTipoProducto = idTipoProductoPadre;

            oTipoProducto.TipoProductoPadre = oTipoProductoPadre;
            oTipoProducto.Descripcion = descripcion;
            oTipoProducto.Activo = activo;
            oTipoProducto.Orden = orden;

            Insert.InsertTipoProducto oInsertTipoProducto = new Insert.InsertTipoProducto();
            oInsertTipoProducto.TipoProducto = oTipoProducto;
            oInsertTipoProducto.Add();
            return oInsertTipoProducto.TipoProducto.IdTipoProducto;
        }

        public int TipoProductoUpdate(int idTipoProducto, int idTipoProductoPadre, string descripcion, bool activo, int orden)
        {
            TipoProducto oTipoProducto = new TipoProducto();
            oTipoProducto.IdTipoProducto = idTipoProducto;
            oTipoProducto.IdTipoProductoPadre = idTipoProductoPadre;
            oTipoProducto.Descripcion = descripcion;
            oTipoProducto.Activo = activo;
            oTipoProducto.Orden = orden;

            Update.UpdateTipoProducto oUpdateTipoProducto = new Update.UpdateTipoProducto();
            oUpdateTipoProducto.TipoProducto = oTipoProducto;
            oUpdateTipoProducto.Update();
            return oUpdateTipoProducto.Resultado;
        }
        #endregion

        #region " Tipo Producto Descripcion "
        public List<TipoProductoDescripcion> TipoProductoDescripcionSelect(TipoProductoDescripcion tipoProductoDescripcion)
        {
            if (tipoProductoDescripcion == null)
            {
                tipoProductoDescripcion = new TipoProductoDescripcion();
            }

            GetTipoProductoDescripcion oGetTipoProductoDescripcion = new GetTipoProductoDescripcion();
            oGetTipoProductoDescripcion.TipoProductoDescripcion = tipoProductoDescripcion;

            return oGetTipoProductoDescripcion.TipoProductoDescripcionList();
        }

        public int TipoProductoDescripcionInsert(int idTipoProducto, int idIdioma, string descripcion)
        {
            TipoProductoDescripcion oTipoProductoDescripcion = new TipoProductoDescripcion();
            oTipoProductoDescripcion.TipoProducto.IdTipoProducto = idTipoProducto;
            oTipoProductoDescripcion.Idioma.IdIdioma = idIdioma;
            oTipoProductoDescripcion.Descripcion = descripcion;
            
            Insert.InsertTipoProductoDescripcion oInsertTipoProductoDescripcion = new Insert.InsertTipoProductoDescripcion();
            oInsertTipoProductoDescripcion.TipoProductoDescripcion = oTipoProductoDescripcion;
            oInsertTipoProductoDescripcion.Add();
            return oInsertTipoProductoDescripcion.Resultado;
        }

        public int TipoProductoDescripcionUpdate(int idTipoProducto, int idIdioma, string descripcion)
        {
            TipoProductoDescripcion oTipoProductoDescripcion = new TipoProductoDescripcion();
            oTipoProductoDescripcion.TipoProducto.IdTipoProducto = idTipoProducto;
            oTipoProductoDescripcion.Idioma.IdIdioma = idIdioma;
            oTipoProductoDescripcion.Descripcion = descripcion;

            Update.UpdateTipoProductoDescripcion oUpdateTipoProductoDescripcion = new Update.UpdateTipoProductoDescripcion();
            oUpdateTipoProductoDescripcion.TipoProductoDescripcion = oTipoProductoDescripcion;
            oUpdateTipoProductoDescripcion.Update();
            return oUpdateTipoProductoDescripcion.Resultado;
        }
        #endregion

        #region " Tipo Producto Tipo Propiedad "
        public List<TipoProductoTipoPropiedad> TipoProductoTipoPropiedadSelect(TipoProductoTipoPropiedad tipoProductoTipoPropiedad)
        {
            if (tipoProductoTipoPropiedad == null)
            {
                tipoProductoTipoPropiedad = new TipoProductoTipoPropiedad();
            }

            GetTipoProductoTipoPropiedad oGetTipoProductoTipoPropiedad = new GetTipoProductoTipoPropiedad();
            oGetTipoProductoTipoPropiedad.TipoProductoTipoPropiedad = tipoProductoTipoPropiedad;

            return oGetTipoProductoTipoPropiedad.TipoProductoTipoPropiedadList();
        }

        public int TipoProductoTipoPropiedadInsert(int idTipoProducto, int idTipoPropiedad)
        {
            TipoProductoTipoPropiedad oTipoProductoTipoPropiedad = new TipoProductoTipoPropiedad();
            oTipoProductoTipoPropiedad.TipoProducto.IdTipoProducto = idTipoProducto;
            oTipoProductoTipoPropiedad.TipoPropiedad.IdTipoPropiedad = idTipoPropiedad;

            Insert.InsertTipoProductoTipoPropiedad oInsertTipoProductoTipoPropiedad = new Insert.InsertTipoProductoTipoPropiedad();
            oInsertTipoProductoTipoPropiedad.TipoProductoTipoPropiedad = oTipoProductoTipoPropiedad;
            oInsertTipoProductoTipoPropiedad.Add();
            return oInsertTipoProductoTipoPropiedad.Resultado;
        }

        public int TipoProductoTipoPropiedadDelete(int idTipoProducto, int idTipoPropiedad)
        {
            TipoProductoTipoPropiedad oTipoProductoTipoPropiedad = new TipoProductoTipoPropiedad();
            oTipoProductoTipoPropiedad.TipoProducto.IdTipoProducto = idTipoProducto;
            oTipoProductoTipoPropiedad.TipoPropiedad.IdTipoPropiedad = idTipoPropiedad;

            Delete.DeleteTipoProductoTipoPropiedad oDeleteTipoProductoTipoPropiedad = new Delete.DeleteTipoProductoTipoPropiedad();
            oDeleteTipoProductoTipoPropiedad.TipoProductoTipoPropiedad = oTipoProductoTipoPropiedad;
            oDeleteTipoProductoTipoPropiedad.Delete();
            return oDeleteTipoProductoTipoPropiedad.Resultado;
        }
        #endregion
    }
}